Рекурсивний виклик функції

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2021
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ до лабораторної роботи № 5 «Рекурсивний виклик функції» Варіант 7 Дата «24» листопада 2021 Завдання: 1. Ознайомитись з рекурсивним викликом функції. 2. Розробити алгоритмом розрахунку значення функції за її розкладенням у ряд за умови отримання результату з заданою  точністю. Врахувати діапазон дозволених значень для змінної x. 3. У якості індивідуального завдання необхідно написати програмний код, що реалізує алгоритм розрахунку значень функцій за їх розкладенням в ряд із заданою користувачем точністю. / Короткий опис рішення На початку програми створено функцію для обчислення факторіалу. Далі у методі main реалізовано введення значень функції з клавіатури. Нижче градуси переводяться у радіани. Далі створюються змінні x1, y1 та q1, вони обчислюються за допомогою бібліотечних формул косинуса та синуса( косинуси та синуси вставляються в формули, що зазначені у завданні). Нижче створено цикл, який обраховує значення косинуса та синуса за допомогою їх формули розкладу в ряд. Точність обрахунку залежить від того, наскільки велике значення N. / Далі створюються змінні x2, y2 та q2, вони вже обраховуються використовуючи нові значення косинуса та синуса. Далі створено змінні, які обраховують різницю між двома значеннями x, y, q. Нижче реалізовано вивід результатів програми. У випадку, якщо введене значення градусів не відповідає необхідним умовам, програма видає відповідне повідомлення. Блок-схема / / Результати роботи / / Висновки: було створено програму, яка обчислює значення геометричної фігури кардіоїди. Це було реалізовано двома шляхами: завдяки бібліотечним значенням косинуса та синуса, а також обрахувавши значення цих тригонометричних функцій завдяки формулам розкладення в ряд. Код програми: https://replit.com/join/ajqisgqqch-vladsosiedskii #include <stdio.h> #include <math.h> #define M_PI 3.14159265358979323846 double factorial(double n){ if(n <= 1.0){ return 1.0; } else{ return (n*factorial(n-1)); } } int main(void) { double fi, a, N, x2 = 0, y2 = 0, q2 = 0, cosr=0, sinr=0; printf("Введіть значення градусів: "); scanf("%lf", &fi); if(fi<=360 && fi>=0){ printf("Введіть значення коефіцієнту a: "); scanf("%lf", &a); printf("Введіть значення N(від нього залежить точність обчислення функції): "); scanf("%lf", &N); double r = (fi/180)*M_PI; printf("У радіанах: %lf\n", r); double x1 = a*cos(r)*(1+cos(r)); double y1 = a*sin(r)*(1+cos(r)); double q1 = a*(1+cos(r)); for(int k = 0; k < N; k++){ cosr = cosr + (pow(-1,k) * (pow(r, 2 * k)/factorial(2 * k))); sinr = sinr + (pow(-1, k)*(pow(r, 2 * k + 1)/(factorial(2 * k + 1)))); } x2=a*cosr*(1+cosr); y2=a*sinr*(1+cosr); q2=a*(1+cosr); double ex = x2 - x1; double ey = y2 - y1; double eq = q2 - q1; printf("\n\nx1 = %.15lf\tx2 = %.15lf\ny1 = %.15lf\ty2 = %.15lf\nq1 = %.15lf\tq2 = %.15lf\n", x1,x2,y1,y2,q1,q2); printf("\nex = %.15lf\ney = %.15lf\neq = %.15lf", ex,ey,eq); } else{ printf("Значення градусів повинно бути більше 0 та менше 360"); } return 0; }
Антиботан аватар за замовчуванням

29.05.2023 19:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини